package com.yanzhang.dao.bill;

import com.yanzhang.pojo.Bill;

import java.sql.Connection;
import java.util.List;

/**
 * @author yanzhang
 */
public interface BillDao {

    /**
     * 增加一个账单
     * @param connection 数据库连接
     * @param bill 账单对象
     * @return 结果数量
     * @throws Exception 抛出SQL异常
     */
    int add(Connection connection, Bill bill) throws Exception;

    /**
     * 条件查询结果集合
     * @param connection 数据库连接
     * @param bill 账单对象
     * @return 账单集合
     * @throws Exception 抛出SQL异常
     */
    List<Bill> getBillList(Connection connection, Bill bill) throws Exception;

    /**
     * 根据id获取账单对象
     * @param connection 数据库连接
     * @param id 主键
     * @return 账单对象
     * @throws Exception 抛出SQL异常
     */
    Bill getBillById(Connection connection, int id) throws Exception;

    /**
     * 修改账单信息
     * @param connection 数据库连接
     * @param bill 账单对象
     * @return 结果数量
     * @throws Exception 抛出SQL异常
     */
    int modify(Connection connection, Bill bill) throws Exception;

    /**
     * 通过id删除账单
     * @param connection 数据库连接
     * @param id 主键
     * @return 结果数量
     * @throws Exception 抛出SQL异常
     */
    int deleteBillById(Connection connection, int id) throws Exception;

    /**
     * 根据供应商id查询账单数量
     * @param connection 数据库连接
     * @param providerId 供应商id
     * @return 数量
     * @throws Exception 抛出SQL异常
     */
    int getBillCountByProviderId(Connection connection, int providerId) throws Exception;
}
